/**
 * 候选人卡片显示修复脚本
 * 去除0.0分数和位置信息显示
 */

(function() {
    'use strict';
    
    console.log('🔧 候选人卡片显示修复脚本启动...');
    
    // 修复函数：隐藏0.0分数和位置信息，但保留状态徽章
    function fixCandidateCards() {
        // 查找所有可能的分数显示元素（排除状态徽章）
        const scoreElements = document.querySelectorAll([
            '.match-score',
            '.score-badge:not(.status-badge)', 
            '.candidate-score',
            '[class*="score"]:not([class*="status"])'
        ].join(','));
        
        scoreElements.forEach(element => {
            // 跳过状态徽章
            if (element.classList.contains('status-badge') || element.closest('.candidate-status')) {
                return;
            }
            
            const text = element.textContent || element.innerText || '';
            // 如果显示0.0或类似的低分数，隐藏它
            if (text.includes('0.0') || text.includes('0分') || text.match(/^[0-2]\.?\d*$/)) {
                element.style.display = 'none';
                console.log('🚫 隐藏低分数显示:', text);
            }
        });
        
        // 查找并隐藏"位置未知"的显示
        const locationElements = document.querySelectorAll([
            '.candidate-location',
            '.meta-item',
            '[class*="location"]'
        ].join(','));
        
        locationElements.forEach(element => {
            const text = element.textContent || element.innerText || '';
            if (text.includes('位置未知') || text.includes('地址未知')) {
                element.style.display = 'none';
                console.log('🚫 隐藏位置未知显示:', text);
            }
        });
        
        // 查找并隐藏"职位未知"的显示
        const titleElements = document.querySelectorAll([
            '.candidate-title',
            '.job-title', 
            '[class*="title"]'
        ].join(','));
        
        titleElements.forEach(element => {
            const text = element.textContent || element.innerText || '';
            if (text.includes('职位未知') || text.includes('岗位未知')) {
                element.style.display = 'none';
                console.log('🚫 隐藏职位未知显示:', text);
            }
        });
        
        // 确保状态徽章始终显示
        const statusBadges = document.querySelectorAll('.status-badge');
        statusBadges.forEach(badge => {
            if (badge.style.display === 'none') {
                badge.style.display = 'inline-block';
                console.log('✅ 恢复状态徽章显示:', badge.textContent);
            }
        });
    }
    
    // 监听DOM变化，实时修复新添加的候选人卡片
    function setupMutationObserver() {
        const observer = new MutationObserver(function(mutations) {
            let hasNewCards = false;
            
            mutations.forEach(function(mutation) {
                if (mutation.type === 'childList') {
                    mutation.addedNodes.forEach(function(node) {
                        if (node.nodeType === Node.ELEMENT_NODE) {
                            // 检查是否是候选人卡片或包含候选人卡片
                            if (node.classList && 
                                (node.classList.contains('candidate-card') || 
                                 node.querySelector && node.querySelector('.candidate-card'))) {
                                hasNewCards = true;
                            }
                        }
                    });
                }
            });
            
            if (hasNewCards) {
                console.log('🔄 检测到新的候选人卡片，应用修复...');
                setTimeout(fixCandidateCards, 100);
            }
        });
        
        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
        
        console.log('👀 已设置DOM变化监听器');
    }
    
    // 添加CSS样式来确保隐藏不想要的元素
    function addFixStyles() {
        const style = document.createElement('style');
        style.textContent = `
            /* 隐藏0.0分数 */
            .match-score:has-text("0.0"),
            .score-badge:has-text("0.0"),
            [class*="score"]:has-text("0.0") {
                display: none !important;
            }
            
            /* 隐藏位置未知 */
            .meta-item:has-text("位置未知"),
            [class*="location"]:has-text("位置未知") {
                display: none !important;
            }
            
            /* 隐藏职位未知 */
            .candidate-title:has-text("职位未知"),
            [class*="title"]:has-text("职位未知") {
                display: none !important;
            }
            
            /* 通用隐藏规则 */
            .candidate-card .match-score[style*="display: none"] {
                display: none !important;
            }
            
            /* 确保状态徽章始终显示 */
            .candidate-status .status-badge {
                display: inline-block !important;
                visibility: visible !important;
                opacity: 1 !important;
            }
            
            /* 确保候选人卡片布局正常 */
            .candidate-card .candidate-info {
                display: flex;
                flex-direction: column;
                gap: 0.3rem;
            }
            
            .candidate-card .candidate-info:empty {
                display: none;
            }
            
            /* 候选人meta信息布局修复 */
            .candidate-meta {
                display: flex;
                gap: 1rem;
                flex-wrap: wrap;
            }
            
            .candidate-meta .meta-item[style*="display: none"] {
                display: none !important;
            }
            
            /* 状态区域布局 */
            .candidate-status {
                position: absolute;
                top: -0.5rem;
                right: -0.5rem;
                z-index: 2;
            }
        `;
        document.head.appendChild(style);
        console.log('🎨 已添加候选人卡片修复样式');
    }
    
    // 主初始化函数
    function initialize() {
        console.log('🚀 开始候选人卡片修复...');
        
        // 添加修复样式
        addFixStyles();
        
        // 立即执行一次修复
        fixCandidateCards();
        
        // 设置监听器
        setupMutationObserver();
        
        // 定期检查和修复（确保不遗漏）
        setInterval(fixCandidateCards, 2000);
        
        console.log('✅ 候选人卡片修复系统已启动');
    }
    
    // 等待DOM加载完成
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initialize);
    } else {
        initialize();
    }
    
    // 导出到全局供调试使用
    window.fixCandidateCards = fixCandidateCards;
    
})();

